MuleSoft Accelerator for Consumer Goods
Use case 1 - Trade promotion management
Run more intelligent, data-driven trade promotions with pre-built assets that surface relevant product, customer, demand planning, and pricing information from ERP and PIM systems. Easily consolidate this information into Trade Promotion Management platforms like Salesforce Consumer Goods Cloud for informed promotional planning.
Overview
- Description
- Solution definition
- Demo video
- Assumptions and constraints
- High-level architecture
- Sequence diagram
- Processing logic
- Successful outcome
See also
Description
Trade promotion management is often multi-faceted, vague, and non-lucrative. It requires effective collaboration among many key stakeholders including sales, finance, revenue growth management, demand planning, and marketing. However, the data needed to drive effective promotions is often siloed and inaccessible where it is needed most.
This use case unlocks critical data for analysis and allows key account managers and finance teams to run more efficient and data-driven trade promotions. This solution enables organizations to unify reporting and build visualizations to support their analysis of promotions, including optimizing pricing and reconciling baselines with actuals. With real-time access to this information, account teams are better equipped to optimize trade spend ROI and drive sustainable growth.
Ultimately, consumer goods companies and their stakeholders will be able to have a holistic view of their trade spend.
Glossary
Term | Definition |
---|---|
MDM | A Global Data service provides an accurate, consistent, and complete copy of business data for use by enterprise applications and business partners while also providing a means to link that copy to occurrences in other systems. |
CIM | The Cloud Information Model (CIM) defines a set of standard data structures that can be used as canonical representations of common entities for integrating systems. |
PIM | The system responsible for managing product information for retail and consumer goods. |
CG | Consumer Goods |
Goals
- Support the bulk creation and real-time creation of products in Salesforce CG Cloud.
- Support the creation of Universal ID & ID attribution
- Orchestrate product updates across designated applications
- Support product hierarchies of a product with attributes - Category, Sub-Category, Brand, Flavor, Packaging. These attributes can be modified based on customer requirements.
- Create and update Product Hierarchy object in Salesforce CG Cloud
- Support the bulk creation and real-time creation of accounts in Salesforce CG Cloud.
- Orchestrate accounts updates across designated applications
- Support account hierarchies of an account with attributes -ParentId
- Create and update Account Hierarchy object in Salesforce CG Cloud
Use case considerations
- Consumer Goods products from SAP S/4 HANA are synchronised with Salesforce CG Cloud.
- Creation of new products
- Updating existing products
- Creation of product hierarchies
- Updating product hierarchies
- Deleting product(s)
- This will be handled by marking products as ‘Inactive’ (productStatus in CIM and State in CG Cloud)
- Physically deleting the product is out of scope (to comply with TPM best practices)
- Creation of new accounts
- Updating existing accounts
- Creation of account hierarchies
- Updating account hierarchies
- Primary identifiers will be linked with the products and accounts in MDM. This can be removed or replaced with what customers deem fit to map and translate ID’s from one system to another to handle the correlation of products and accounts between SAP S/4 HANA and Salesforce Consumer Goods Cloud.
Technical considerations
- Enable the creation of a universal ID in MDM that allows you to retrieve / create IDs regardless of where the product and account is created or updated
- Use CIM as the canonical model
- Build using top applications, inclusive of Salesforce products, but should be built to work with other endpoints as well. For this solution, leverage the following applications:
- Salesforce Consumer Goods Cloud, SAP S/4HANA and MDM (generic)
End-to-end scenarios
- Product(s) created in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
- Product Hierarchy created in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
- Product Hierarchy updated in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
- Account(s) created in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
- Product(s) updated in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
- Account(s) updated in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud
- Account Hierarchy updated in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
- Product Hierarchy updated in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
Solution definition
The primary set of use cases covered in the current solution involve the synchronisation of product and account data (including their hierarchies) between multiple systems.
Goal
Product synchronisation to MDM and Salesforce CG Cloud.
Main success scenario
- Receive a new or updated product from SAP S/4 HANA.
- For the first product job run/ schedule, the products will be filtered out from SAP S/4HANA by their level. Hence the first set of products will be Category, then Sub-Category, Brand, Flavor and Packaging. This ensures that the hierarchy is correctly built in CG Cloud. Then the products will be pulled from SAP S/4 HANA.
- Repeat the steps 4-6 for every product level.
- Attempt to match the input to an existing product in MDM
- If a match is found, update the existing entry in MDM. If no match is found, create a new entry in MDM and Salesforce CG Cloud.
- Publish the update to Salesforce CG Cloud registered for updates.
Goal
Account synchronisation to MDM and Salesforce CG Cloud.
Main success scenario
- Receive a new or updated account from SAP S/4HANA. Every account will contain the parent account ID until it finds the top most parent in the hierarchy.
- Attempt to match the input to an existing product in MDM.
- If a match is found, update the existing entry in MDM. If no match is found, create a new entry in MDM and Salesforce CG Cloud.
- Publish the update to Salesforce CG Cloud registered for updates.
Demo video
To achieve speed and scale, consumer goods companies need to connect critical systems, applications, and data in one place. With the power of MuleSoft, key account managers, sales representatives, and finance teams can access critical data in their Trade Promotion Management platform, such Consumer Goods Cloud, for informed trade planning.
As a key account manager (KAM), collaboration is key, but with the amount of information exchanged and circulating through multiple systems, collaborating with key teams can be challenging. To achieve speed and scale, consumer goods companies need to connect critical systems, applications, and data in one place. With the power of MuleSoft, KAMs, sales representatives, and finance teams can access critical data in their Trade Promotion Management platform, such as Consumer Goods Cloud, for informed trade planning.
In this demo, learn how you can nurture more robust relationships with optimal trade tactics and connected data with MuleSoft and Salesforce.
Assumptions and constraints
The following will be used to guide or constrain the solution design at a high level:
- The Cloud Information Model (CIM) will be used as the canonical model for all business types; see the CIM usage guidelines in that asset.
- Universal identifiers will be maintained in MDM. Wherever possible, these will be assigned as external identifiers in target systems.
- References to the universal IDs will be reflected in Salesforce CG Cloud using ExternalIDs to avoid conflicts with the usage of other external identifiers.
- MDM will record only minimal information about the product in addition to establishing the correlation of productIds between SAP S/4 HANA and Salesforce CG Cloud.
High-level architecture
Sequence diagram
The diagrams below illustrates the sequence of processing product and account sync to Salesforce CG Cloud from SAP S/4HANA.
Processing logic
The primary handling and orchestration of products will be implemented in the Products Process API. This process can be described as follows:
- A product has five attributes - Category, Sub-Category, Brand, Flavor, Packaging that represent the product hierarchy where each attribute is a type of product.
- All the levels in the product hierarchy need to be synchronised from SAP S/4 HANA to Consumer Goods before the actual product.
- The bulk data upload to CG Cloud will be implemented using a batch scope where each of the steps from Step 4 - Step 6 will happen in parallel for all the products.
- SAP S/4HANA System API will determine the level of the product based on the availability of the five attributes.
- Find a matching product entry in MDM. The lookup will be done by attempting to match on the following criteria, in sequential order, returning once a match has been found:
- Universal Identifier (if provided)
- External Identifier (of source system)
- If a single match is found:
- Retrieve the existing product
- Apply the incoming updates and save them back to MDM
- If not matched on external identifier, associate it with the product
- Invoke System APIs to update the Salesforce CG Cloud (see below)
- Associate missing external identifiers back to MDM
- If no match was found:
- Create or update a product entry in MDM
- Associate external identifier of source system with the product
- Invoke System APIs to update the downstream systems (see below)
- Associate new external identifiers back to MDM
The primary handling and orchestration of customers will be implemented in the Customers Process API. This process can be described as follows:
- A Customer has an attribute to identify the parent- parentId that represents the hierarchy where each attribute is a type of customer.
- All the levels in the customer hierarchy need to be synchronised from SAP S/4 HANA to Consumer Goods before the actual product.
- The bulk data upload to CG Cloud will be implemented using a batch scope where each of the steps from Step 4 - Step 6 will happen in parallel for all the customers.
- SAP S/4HANA Customer System API will determine the level of the customer based on the availability of the parentId attribute.
- Find a matching customer entry in MDM. The lookup will be done by attempting to match on the following criteria, in sequential order, returning once a match has been found:
- Universal Identifier (if provided)
- External Identifier (of source system)
- If a single match is found:
- Retrieve the existing product
- Apply the incoming updates and save them back to MDM
- If not matched on external identifier, associate it with the product
- Invoke APIs to update the Salesforce CG Cloud (see below)
- Associate missing external identifiers back to MDM
- If no match was found:
- Create or update a customer entry in MDM
- Associate external identifier of source system with the product
- Invoke System APIs to update the downstream systems (see below)
- Associate new external identifiers back to MDM
Successful outcome
After successfully completing the update processing for all target systems, the following conditions will be met:
- MDM holds a record of the product and customer
- All target systems will hold at least some minimal representation of the same
- The entity created/updated in each system will reference the universal identifier from MDM
- MDM holds a list of all external identifiers associated with the product
- A complete view of the product and customer can be constructed by first retrieving the universal copy from MDM, and then from all associated downstream systems
Workflow
The use case is triggered when
- A product and its associated hierarchy is created in SAP S/4 HANA
- An account/organization and its associated hierarchy is created iis created in SAP S/4 HANA
The Products Process API invokes the SAP S/4HANA Products System API on a schedule to capture the new and updated products
- The Customers Process API invokes the SAP S/4HANA Customer System API on a schedule to capture the new and updated organization customers
- The Salesforce Consumer Goods Cloud System API creates or updates the products and accounts in Salesforce CG Cloud.
Systems involved
- Salesforce ConsumerGoods Cloud
- SAP S/4HANA
- MDM (generic)
Setup instructions
MDM configuration
Follow the setup instructions in the README file in the MDM System API.
Before you begin
The Accelerators setup guide provides general information on getting started with the accelerator components. This includes instructions on setting up your local workstation for configuring and deploying the applications. |
Downloadable assets
Accelerator System APIs
- MDM System API | API Specification | Implementation Template
- SAP S/4HANA Products System API | API Specification | Implementation Template
- RCG Salesforce Consumer Goods Cloud System API | API Specification | Implementation Template
- SAP S/4HANA Customers System API | API Specification | Implementation Template
- RCG Salsify Products System API | API Specification | Implementation Template
Accelerator Process APIs
Products Process API | API Specification | Implementation Template
Customers Process API | API Specification | Implementation Template
Accelerator Listeners
- SAP Event Listener | Implementation Template
- Salsify Channel Listener | Implementation Template